package com.larry.spark.rdd.transform

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object RDD_Oper_Repartition {

  def main(args: Array[String]): Unit = {
    //TODO  使用spark coalesce  缩减分区
    //TODO  默认情况下 缩减分区不会shuffle

    val conf = new SparkConf().setMaster("local[*]").setAppName("rdd")
    val sc = new SparkContext(conf)

    val rdd: RDD[Int] = sc.makeRDD(List(1,2,3,4,5,6),2)

//    val rdd1 = rdd.coalesce(2)
    //扩大分区需要shuffle
//    val rdd1 = rdd.coalesce(3,true)
    val rdd1 = rdd.repartition(3)

//    rdd.saveAsTextFile("out1")
    rdd1.saveAsTextFile("out3")

//    rdd1.collect().foreach(println)
    sc.stop()
  }
}
